//package solution;
//
///**
// * Created with IntelliJ IDEA.
// * Description:
// * User: ws
// * Date: 2023-01-22
// * Time: 14:16
// */
//
//import java.util.HashMap;
////https://leetcode.cn/problems/remove-zero-sum-consecutive-nodes-from-linked-list/submissions/396669020/
///**
// * Definition for singly-linked list.
// * public class ListNode {
// * int val;
// * ListNode next;
// * ListNode() {}
// * ListNode(int val) { this.val = val; }
// * ListNode(int val, ListNode next) { this.val = val; this.next = next; }
// * }
// */
//class Solution {
//    public ListNode removeZeroSumSublists(ListNode head) {
//        //设立新的头结点，便于返回
//        ListNode newHead = new ListNode(0, head);
//        Map<Integer, ListNode> map = new HashMap<>();
//        int sum = 0;
//        ListNode cur = newHead;
//        while (cur != null) {
//            sum += cur.val;
//            map.put(sum, cur);//哈希表的V，后面出现的会覆盖前面出现的的，
//            //此时的节点即为截断的节点的尾巴，第一次出现的就是头
//            cur = cur.next;
//        }
//        cur = newHead;
//        sum = 0;
//        while (cur != null) {
//            sum += cur.val;
//            //再次遍历，开始截断
//            cur.next = map.get(sum).next;
//            cur = cur.next;
//        }
//        return newHead.next;
//    }
//}
